#pragma once

#include "BallType.h"

class CSnake
{
	private:
	sf::Image oHeadImage;
	sf::Sprite oHeadSprite;
	std::vector<BallType::Type> vTail;
	std::vector<sf::Sprite> vTailSprite;
	std::vector<float> vTailAngles;
	float fEatingInterval;
	float fEatingTime;
	float fMovementSpeed;
	float fHeadAngle;
	float fBallRadius;
	float fEatingAngle;
	bool bEating;
	float fLengtheningAngle;
	float fLengtheningSavedAngle;
	bool bLengthening;
	int iLengtheningTailIndex;
	int iLengtheningItemIndex;
	int iMatchCount;
	sf::Image oScaleImage;
	std::vector<sf::Sprite> vScaleSprite;
	int Iindex1, Iindex2;
	float fSlowedTime;
	float fFrozenTime;
	bool bSnakeDead;
	bool bHamsterDead;
	bool bSnakeDone;
	int iVisibleBallsCount;
	float fNextBallHideTime;
	float fSnakeAlpha;
	sf::Clock oSnakeDeadClock;
	int iCurrentLevel;
	int iBallCount;
	bool topisie;

	public:
	CSnake(void);
	CSnake(int iInitialLength, int iLevel);
	void Load(void);
	void Update(float fDelta);
	void Update_dead(void);
	void Display(void);
	void CheckForDeleted(int index);
	void SlowDown(void);
	void Freeze(void);
	bool SnakeDied(void);
	bool SnakeDone(void);
	bool HamsterDied(void);
};
